home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Wonky Flux Batch 2019 02
/
Wonky_Flux_Batch_2019-02.zip
/
Wonky Flux Batch 2019-02
/
106 - Proboard KEY Floppy - Must be in Drive 1.dsk
/
SWORD2.SEGS.SHK
/
SWORDS.2.AUX2.S
< prev
next >
Wrap
Text File
|
1989-01-26
|
20KB
|
516 lines
; _________________________________________________________________________
; [_ _]
; _] Swords & Sorcery II -- The Journey Goes Onward [_
; [_ _]
; _] by Rubber Duck, @1987 [_
; [______________________ ________________________]
; _] The ] DuckNet [ BBS [_
; [_ (405)-355-9678 _]
; _] 300/1200/2400 24hrs [_
; [_____________________________]
; NOTE: Swords & Sorcery II is NOT a Public Domain program. It is SHAREWARE.
; You may copy and distribute S&S II freely, as long as you leave this
; notice intact. The ShareWare fee for S&S II is --> $0.00 <--, but I
; do require that you register your copy. Send a postcard with your
; name, your handle/alias (if any), your BBS name, phone number, baud,
; hours, version of ACOS, whether or not you have the original Swords
; and Sorcery on your system, and any comments/suggestions/questions.
; Send this to: Rubber Duck, 4812 NE Winfield Cir, Lawton, OK, 73507.
; At last, lovers of might and magic, the sequel to Swords & Sorcery. S&S II
; provides an expanded and enhanced world for S&S players. Many more options,
; much more detail and character individuality are here. S&S II also supports
; the one-key options that are now the GBBS standard with version 1.3.
; NOTES ABOUT THIS VERSION: Swords & Sorcery II v2.0 (SWORD2.V2.0.BNY)
; This is the first OFFICIAL RELEASE version of S&S II. This is NOT A BETA-
; TEST version, it is a COMPLETE game with an ULTIMATE GOAL. Hopefully this
; is the first and LAST version of this program I'll have to put out. I hate
; those nasty, creepy, crawly BUGS!
; Thanks to Everyone who registered their Beta-Test copies of S&S II
; Special Thanks to /steve schneider of The RainForest BBS for playtesting,
; betatesting, debugging, putting up with hassle and writing fixes. Steve,
; your assistance and support are both priceless. . . thanks.
; To install Swords & Sorcery II on your system:
; 1) Copy the files SWORDS.2.MAIN.S, SWORDS.2.AUX.S and SWORDS.2.AUX2.S to
; your A2: drivespec.
; 2) Add this line to your system:
; if i$="S2" then link "a2:swords.2.main"
; 3) Change the link.back routine to suit your system.
; 4) S&S II writes three files, S2.LOG, S2.LAST.PLAYER, and S2.WINNERS to
; the b4: drivespec. Change this to suit your system.
; 5) You are ready to go!
; Swords & Sorcery II - Auxillary Seg 2
; Professional BBS Custom Edition version 2.0jpe 01/19/89
public find
public castle
public tower
link.back
link "a2:swords.2.main","return"
link.term
recall "h:var"
link "a:main.seg","term1"
link.dead
link "a2:swords.2.main","dead"
find
on nocar goto link.back
push link.back
if a$="weapon" goto find.weapon
if a$="shield" goto find.shield
if a$="magic" goto find.magic
if a$="potion" goto find.potion
if a$="scroll" goto find.scroll
if a$="woman" goto find.woman
if a$="dryad" goto find.dryad
if a$="lantern" goto find.lantern
return
; *** FINDS
find.weapon
x$=rnd$:x=random(100):x=x mod 5
if (xp>200) and (wp$<>"Enchanted Sword") then x=5
if x=0 or x=1 wf$="Silver Dagger": x$="a" :wf=3
if x=2 wf$="Iron Mace": x$="an":wf=4
if x=3 wf$="Steel Sword": x$="a" :wf=5
if x=4 wf$="Platinum Battleaxe": x$="a" :wf=6
if x=5 wf$="Enchanted Sword": x$="an":wf=7
if wf$=wp$ return
print \"You find "x$" "wf$"!!!"
if wp$="" then wp$=wf$:wp=wf:return
print \"(D)rop your "wp$" or (L)eave the "wf$
print " behind? ";:clear key:get i$
if i$="D" print chr$(8);"Drop "wp$:else print chr$(8);"Leave"
if i$="D" then wp$=wf$:wp=wf:return
return
find.shield
x$=rnd$:x=random(100):x=x mod 2:x=x+1
if x=1 print \"You find a Good Shield!"
if x=2 print \"You find an Excellent Shield!"
if ((sh$="") and (x=1)) then sh$="Good Shield":sh=x:return
if ((sh$="") and (x=2)) then sh$="Excellent Shield":sh=x:return
print \"Take it instead of your "sh$"? ";:get i$
if i$="Y" print chr$(8);"Yes":else print chr$(8);"No"
if i$<>"Y" then return:else sh=x
if x=1 then sh$="Good Shield":else sh$="Excellent Shield"
return
find.magic
x$=rnd$:x=random(100):x=x mod 12:x=x+1
if x>3 goto find.scroll
if x=1 sf$="Ring of Protection"
if x=2 sf$="Cloak of Protection"
if x=3 sf$="Mithril Shield"
print \"You find a "sf$"!"
if sh$="" then sh=x+1:sh$=sf$:return
print \"Take it instead of your "sh$"? ";:get i$
if i$="Y" print chr$(8);"Yes":else print chr$(8);"No"
if i$<>"Y" return:else sh=x+1:sh$=sf$:return
find.potion
x$=rnd$:x=random(100):pf=x mod 6:x=x mod 4:pf=pf+1:x=x+1
print \"You find a strange ";
if x=1 print "vial ";
if x=2 print "bottle ";
if x=3 print "decanter ";
if x=4 print "jug ";
print "containing a Potion!"
if not(po) goto potion2
print \"You may only carry one Potion at a time."
print "Do you want to drop your "po$"? ";:get i$
if i$="Y" print chr$(8);"Yes":else print chr$(8);"No"
if i$<>"Y" return
potion2
po=pf:po$="Unidentified Potion":return
find.scroll
gosub random:print \"You find a Magic Scroll!"
print \"(R)ead it or (T)hrow it away? ";:get i$
if i$="T" print chr$(8);"Throw":else print chr$(8);"Read"
if i$="T" print \"As you toss it aside, it crumbles to dust!":return
if x<=3 goto scroll3
x$=rnd$:x=random(100):x=x mod 6:x=x+1
if x=1 x$="Healing"
if x=2 x$="Strength"
if x=3 x$="Psyche"
if x=4 x$="Luck"
if x=5 x$="Teleport"
if x=6 x$="Fireball"
print \"The Scroll contains a "x$" spell!"
scroll1
if s1=0 then s1$=x$:s1=x:goto scroll4
if s2=0 then s2$=x$:s2=x:goto scroll4
if s3=0 then s3$=x$:s3=x:goto scroll4
print \"You already know three spells!"
print \"Which shall you replace?"
print \"1) "s1$\"2) "s2$\"3) "s3$\"4) Throw Scroll away"
scroll2
print \"Which? ";:get i$
if i$="1" print chr$(8);"Replace "s1$:s1=0:goto scroll1
if i$="2" print chr$(8);"Replace "s2$:s2=0:goto scroll1
if i$="3" print chr$(8);"Replace "s3$:s3=0:goto scroll1
print chr$(8);"Throw away"
print \"As you toss the Scroll away, it crumbles to dust!":return
scroll3
print \"Oh, no! This is a Cursed Scroll!"
if lu>2 then lu=lu-2:else lu=1
return
scroll4
print \"You now know the "x$" spell.":return
find.woman
x$=rnd$:x=random(100):x=x mod 4
if x<=1 x$="an escaped slave girl"
if x=2 x$="a gypsy girl"
if x=3 x$="a wandering wench"
if x=4 x$="a traveling harlot"
if x=5 x$="a young maiden"
print \"You encounter "x$" who joins you."
wm=wm+1:gosub random:if x=0 goto dryad.offended
return
find.dryad
if (dr=1) return:else print \"You meet a lovely Dryad!"
print "She offers to guide you on your journey."
print \"Will you let her? ";:get i$
if i$="Y" print chr$(8);"Yes":else print chr$(8);"No"
if i$<>"Y" gosub random:if x=0 goto dryad.offended
if i$<>"Y" return:else dr=1
return
find.lantern
if (ln) return
print \"You find a Lantern ";
x=random(100):x=x mod 3:x=x+1
if x=1 print "hanging from a tree limb!"
if x=2 print "lying in the path!"
if x=3 print "beside the body of a less fortunate adventurer!"
ln=1:return
dryad.offended
if (dr=0) return
print \"The Dryad is offended!"
print "She curses you and leaves.":dr=0
if lu>2 then lu=lu-2:else lu=1
if xp>10 then xp=xp-3:else xp=1
return
; seed random number generator and
; get a random number zero to nine
random
x$=rnd$:x=random(100):x=x mod 10:return
castle
on nocar goto link.term
au=0:print \"You have reached King Otto's castle!":goto castle3
castle1
print \"Places to Visit in King Otto's castle:"
print \" A)udience chamber"
print " H)ealer"
print " L)ook-out tower"
print " O)racle"
print " I)nventory"
print " E)xit the Castle"
castle2
print \"You are in King Otto's castle."
castle3
print \"Where do you go? ";:get i$
if i$=chr$(13) print " ";
if i$="?" or i$="/" print chr$(8);"Menu":goto castle1
if i$="" or i$=chr$(13) then i$="<CR>"
if i$="Q" print chr$(8)"Quit":goto link.back
if i$="E" print chr$(8)"Exit":goto link.back
if i$="I" print chr$(8)"Inventory":gosub inventory:goto castle2
if i$="A" print chr$(8)"Audience":goto audience
if i$="H" print chr$(8)"Healer":goto healer
if i$="L" print chr$(8)"Lookout Tower":goto lookout
if i$="O" print chr$(8)"Oracle":goto oracle
print \\"Sorry, "chr$(34);i$;chr$(34)" is not a command.":goto castle2
audience
if au=1 print \"You've had your audience with the King already!":goto castle2
au=1:print \"King Otto will see you now."
if (pr=1) print \"Ah, you've rescued my lovely daughter, the Princess!"
if (pr=1) print \"Please return her to me, now!":goto aud.0
print \"Ahh, greetings brave adventurer! I regret I have so little time to"
print "spare, but there are many courageous souls who wish an audience with"
print "me today. Speak quickly, then!"
aud.0
print \"What is thy need?"
print \" C)harge thou with a Quest"
if gp<51 print " G)ive thee some Gold"
if hp<16 print " H)eal thy Wounds"
if pr=1 print " R)eturn the Princess"
print \"Your reply? ";:get i$
if i$=chr$(13) then print " ";
if i$="R" print chr$(8)"Return the Princess":goto aud.1
if i$="C" print chr$(8)"Quest":goto aud.2
if i$="N" print chr$(8)"None":goto castle2
if i$="Q" print chr$(8)"Quit":goto castle2
if (i$="G") and (gp<51) print chr$(8)"Gold":goto aud.3
if (i$="H") and (hp<16) print chr$(8)"Heal":goto aud.4
if (i$<>"A") print \\"Sorry, "chr$(34)i$chr$(34)" isn't a command.":goto aud.0
if (pr=0) print chr$(8)\\"You can't do that yet!":goto aud.0
if (wp$<>"Enchanted Sword") print chr$(8)\\"You can't do that yet!":goto aud.0
print chr$(8)"Attack!"
print \"King Otto's kind visage melts away into mist, revealing the Evil One!"
print "'So, fool! You've discovered my secret!', it snarls. 'Now die!!!'"
mn$="The Evil One":mp=30:mx=50:md=14
aud.0a
print \"The Princess screams in terror as...":gosub battle
print \"You have defeated the Evil One!!!!"
print chr$(7);chr$(7);chr$(7);chr$(7);
if not(info(2)) for x=75 to 25 step -2:tone (x,50):next
print \"You have won the game!!!!":close
print \"You and the Princess live happily"
print "ever after as King and Queen!"
f$="b4:s2.winners":create f$:open #1,f$:append #1
print #1,a1$" "a2$" won on "date$
print #1,"finishing with "xp" xp, "hp" hp, and "gp" gold."\:close
link "a2:swords.2.main","exit2"
aud.1
print \"The Princess runs joyfully to her father, then stops in mid-step..."
print \"The kind visage of King Otto disolves, revealing the Evil One!!!"
print "'I shall return my future bride to her Tower, and find new Sorceror"
print " to guard her,' it snarls, 'right after I dispose of YOU!!!!!"
mn$="The Evil One":mx=50:mp=30:md=14:pr=0:goto aud.0a
aud.2
print \"Ah, finally someone will undertake this dangerous mission! An evil"
print "Sorceror has kidnapped my beautiful daughter, and is holding her in"
print "his dark Tower. You, my faithful subject, must rescue her and slay"
print "the Sorceror. The reward for you will be beyond imagining when you"
print "return her to me. Good luck, brave one!":goto castle2
aud.3
gp=gp+30:gosub random:gp=gp+x:gosub random:gp=gp+x
print \"Here is a generous portion of mine own treasury. May it speed you"
print "on your journey, my loyal subject!":goto castle2
aud.4
hp=hp+15
print \"King Otto waves his magic sceptre over you...you feel refreshed!"
print \"He says, 'Good health and long life to you, faithful subject!'"
goto castle2
healer
print \"Welcome to the Holy Healer!"
if hp>=25 print \"Thou art healthy! Return only if ye are truly in need."
if hp>=25 goto castle2
y=30-hp:y=y*3
print \"Brave adventurer, we shall heal all thy wounds for a mere "y" gold."
print \"Wilt thou make this offering? ";:get i$
if i$="Y" print chr$(8);"Yes":else print chr$(8);"No"
if i$<>"Y" print \"Then leave this place at once!":goto castle2
if y>gp then y=gp:print \"You have only "y" gold. We will do what we can."
print \"Ahh....Ooohhh....Ummm.....":gp=gp-y:hp=hp+(y/3):if hp>30 hp=30
print \"The healing is complete. Fare thee well.":goto castle2
lookout
print \"You reach the top of the tall Lookout Tower of the Castle."
print "You see the vast expanses of King Otto's Kingdom, dotted"
print "with an occasional Towne or Village. In the distance looms"
print "a dark, foreboding Tower.":goto castle2
oracle
print \"The Mystic Oracle greets you:"
print " 'Welcome, O brave and adventurous Soul!"
print " The truths and wisdoms of the Universe"
print " are plain unto me. Wilt thou make an"
print " offering of 30 gold so that I may share"
print " this knowledge with you?' ";:get i$
if i$="Y" print chr$(8);"Yes":else print chr$(8)"No"
if i$<>"Y" print \"Ah, then fare thee well...":goto castle2
if gp<30 print \"I see that you are in need of some truth!"
if gp<30 print "The truth is, you haven't the gold! Sorry!":goto castle2
gp=gp-30:gosub random:x=x+1
if x=1 print \"An Evil is upon the Land, and all is not as it seems..."
if x=2 print \"The Evil One is near at hand..."
if x=3 print \"The Evil One desires the Princess for his bride!"
if x=4 print \"Only a magicked weapon can harm the Evil One."
if x=5 print \"The Evil One cannot be touched while the Princess is captive."
if x=6 print \"There is no normal way to escape from the Evil One."
if x=7 print \"A drink is worth more than the contents of the cup!"
if x=8 print \"King Otto has been killed by the Evil One!"
if x=9 print \"The Evil One rules the Land!"
if x=10 print \"<A>ttack the Evil One and restore peace and tranquility!"
print \"The Mystic Oracle bids you farewell.":goto castle2
; TOWER
tower
on nocar goto link.term
print \"You reach a tall tower! At the top, the Princess waves to you!"
print \"The door is locked.";
if not (ky) print " You must find a key.":goto towerexit
print " Try your key? ";:get i$
if i$="Y" print chr$(8);"Yes":else print chr$(8);"No"
if i$<>"Y" goto towerexit
gosub random:x=x+(lu/5)
if x<=4 print \"The door opens but the key breaks in the lock.":ky=0
if x>=5 print \"The door is unlocked and stands open!"
print \"Oh no! As you enter the Tower, the door starts to close by itself!"
if lu<=4 print \"You are trapped in the Tower!":goto tower1
print \"Do you (E)scape before it closes or (R)emain in the Tower? ";:get i$
if i$="E" print chr$(8);"Escape":else print chr$(8);"Remain"
if i$="E" print \"You manage to escape!":xp=xp-2:goto towerexit
tower1
print \"The door slams shut, as if by Magic!"
print \"Oh, no! The Sorceror of the Tower!"
mn$="The Sorceror":mp=(hp+5):mx=30:md=4:gosub battle
print \"You have rescued the Princess! She joins you.":pr=1
xp=xp+10:print \"With the Sorceror's death, the magic door becomes powerless."
print \"You are able to escape the Tower!":goto link.back
towerexit
print \"The Princess weeps as you leave!":xp=xp-2:goto link.back
; *** battle
; Note: this BATTLE is designed for The Sorceror and The Evil One exclusively.
battle
print \"The battle begins!":ba=1
print \"You and "mn$" circle for position!"
who.first
gosub random:x=x+(st/5)
if x<=5 gosub monstermove:gosub playermove:goto who.first
gosub playermove:gosub monstermove:goto who.first
battlexit
ba=0:return
playermove
print \"Your move! ";
player0
print "Your options are:"\
if (s1+s2+s3) print " C)ast a Spell"
if (po) print " D)rink a Potion"
print " A)ttack Enemy with ";
if (wp) print wp$:else print "Bare Hands"
print \"What do you do? ";:get i$
if i$="C" print chr$(8);"Cast a Spell"
if i$="D" print chr$(8);"Drink a Potion"
if i$="A" print chr$(8);"Attack Enemy"
if ((i$="F") and (mn$="The Sorceror")) print \"The door is shut!":goto player0
if ((i$="F") and (mx=50)) print \"There is NO ESCAPE!":goto player0
if i$="C" gosub cast.spell:goto endplayermove
if i$="D" gosub drink.potion:goto endplayermove
if i$<>"A" print \\"Sorry, ";chr$(34);i$;chr$(34);" is invalid."\:goto player0
gosub random:print \"You attack with your ";
if (wp) print wp$:else print "Bare Hands"
if ((mx=50) and (wp$<>"Enchanted Sword")) print \"You missed!":goto endplayerm
print:x=x+(st/3):if wp=5 then x=x+1
if x<=5 print "You missed!":goto endplayermove
gosub random:x=x/5:x=x+wp:x=x+(st/5)
if not(info(2)) tone (50,50):tone (50,50):else print chr$(7);
print "You hit him for "x" damage!!!"
if x>mp then mp=0:else mp=mp-x
endplayermove
if mp<1 then pop:print "You've finished "mn$" off!!!!"
if mp<1 then xp=xp+mx:print \"You find 30 bags of gold!"
if mp<1 then gp=gp+30:goto battlexit
print "He has "mp" hit points now...":return
monstermove
print \mn$" attacks!"
gosub random:x=x+(lu/5)
if mn$="The Sorceror" then x=x-3:print \"He casts a Fireball!"
if x>5 print "He misses you!":return
print "A hit!! ";:if not(info(2)) tone (200,100):else print chr$(7);chr$(7);
y=5-x:x=random(100):x=x mod md:x=x+1:x=x+(y/2)
if sh>=x then x=1:else x=x-sh
if x>hp then hp=0:else hp=hp-x
if hp<1 print \\"You've had it!":pop:pop:goto link.dead
if x<=2 print "Only a flesh wound...":goto endmonst
if x<=4 print "The wound is not bad...":goto endmonst
print "A vicious attack!"
endmonst
print "You have "hp" hit points now...":return
; *** inventory
inventory
print \'
Stats:
Strength: 'st' Psyche: 'ps' Luck: 'lu'
Hit Points: 'hp' Experience Points: 'xp'
Inventory:'
if (wp) print " "wp$
if (sh) print " "sh$
if (po) print " "po$
if (ky) print " Golden Key"
if (ln) print " Lantern"
if (s1) or (s2) or (s3) print " Spells:"
if (s1) print " "s1$
if (s2) print " "s2$
if (s3) print " "s3$
if (pr) or (wm) or (dr) print " Companions:"
if (pr) print " The Princess"
if (dr) print " The Dryad Guide"
if (wm=1) print " 1 woman"
if (wm>1) print " "wm" women"
if (gp=0) print " No gold"
if (gp=1) print " 1 bag of gold"
if (gp>1) print " "gp" bags of gold"
print:return
; *** potions & spells
drink.potion
if not(po) print \"You aren't carrying a Potion!":return
print \"You are carrying: "po$
print \"Drink it now? ";:get i$
if i$="Y" print chr$(8);"Yes":else print chr$(8);"No"
if i$<>"Y" print \"You return the Potion to your pack.":return
print \"Gulp...gulp...gulp...";
if (po=1) print "ahh! How refreshing!":hp=hp+10:if hp>30 hp=30
if (po=2) print "ugh! Blah! Poison!":if hp>10 hp=hp-10:else hp=1
if (po=3) print "umm! How invigorating!":st=st+2:if st>10 st=10
if (po=4) print "ooh! How enlightening!":ps=ps+2:if ps>10 ps=10
if (po=5) print "nnnuh! You feel weak!":if st>2 st=st-2:else st=1
if (po=6) print "duh? Duh? Yuk!":if ps>2 ps=ps-2:else ps=1
po$="":po=0:return
cast.spell
if not(s1+s2+s3) print \"You don't know any Spells!":return
print \"You may cast the following:"
if (s1) print "1) "s1$
if (s2) print "2) "s2$
if (s3) print "3) "s3$
print "4) Don't cast anything"
print \"Which shall you cast? ";:get i$
x=val(i$):if (x=0) or (x=4) goto cast.none
if (x=1) and not(s1) goto cast.none
if (x=2) and not(s2) goto cast.none
if (x=3) and not(s3) goto cast.none
if x=1 sc$=s1$:sc=s1:s1$="":s1=0
if x=2 sc$=s2$:sc=s2:s2$="":s2=0
if x=3 sc$=s3$:sc=s3:s3$="":s3=0
spell.effects
gosub random:x=x+(ps/2)
if x<=5 print \"Spell failed!":return
print \"Spell succeeded!"
if sc=1 print "You feel refreshed!":hp=hp+10:if hp>30 hp=30
if sc=2 print "You feel invigorated!":st=st+2:if st>10 st=10
if sc=3 print "You feel enlightened!":ps=ps+2:if ps>10 ps=10
if sc=4 print "You feel luckier!":lu=lu+2:if lu>10 lu=10
if sc=5 print "You are Teleported away!":if ba=1 pop:ba=0
if sc=5 link "a2:swords.2.aux","towne"
if sc<>6 return
if (ba=0) print "Your Fireball shoots away, wasted!":return
print "Your Fireball hits the "mn$"!!"
if (mp>4) then mp=mp-5:else mp=0
return
cast.none
print chr$(8);"None":return